package WWW::OpenX::API::Dispatch::Table;
use warnings;
use strict;

our $VERSION = sprintf('0.1.%d', q|$Rev: 8 $| =~ /(\d+)/);

# this is a horrid kludge to make sure the right endpoints are being called.
# still not sure why they decided to implement it this way, but oh well.

use constant DISPATCH_TABLE => {
    # authentication
    # login = alias for logon
    logon                                   =>  { 'service' => 'LogonXmlRpcService.php', require_auth => 0, no_implode => 1 },
    logoff                                  =>  { 'service' => 'LogonXmlRpcService.php', require_auth => 1 },
    # agency
    addAgency                               =>  { 'service' => 'AgencyXmlRpcService.php', require_auth => 1 },
    deleteAgency                            =>  { 'service' => 'AgencyXmlRpcService.php', require_auth => 1 },
    getAgency                               =>  { 'service' => 'AgencyXmlRpcService.php', require_auth => 1 },
    getAgencyList                           =>  { 'service' => 'AgencyXmlRpcService.php', require_auth => 1 },
    agencyAdvertiserStatistics              =>  { 'service' => 'AgencyXmlRpcService.php', require_auth => 1 },
    agencyBannerStatistics                  =>  { 'service' => 'AgencyXmlRpcService.php', require_auth => 1 },
    agencyCampaignStatistics                =>  { 'service' => 'AgencyXmlRpcService.php', require_auth => 1 },
    agencyDailyStatistics                   =>  { 'service' => 'AgencyXmlRpcService.php', require_auth => 1 },
    agencyPublisherStatistics               =>  { 'service' => 'AgencyXmlRpcService.php', require_auth => 1 },
    agencyZoneStatistics                    =>  { 'service' => 'AgencyXmlRpcService.php', require_auth => 1 },
    modifyAgency                            =>  { 'service' => 'AgencyXmlRpcService.php', require_auth => 1 },
    # advertiser
    addAdvertiser                           =>  { 'service' => 'AdvertiserXmlRpcService.php', require_auth => 1 },
    deleteAdvertiser                        =>  { 'service' => 'AdvertiserXmlRpcService.php', require_auth => 1 },
    getAdvertiser                           =>  { 'service' => 'AdvertiserXmlRpcService.php', require_auth => 1 },
    advertiserBannerStatistics              =>  { 'service' => 'AdvertiserXmlRpcService.php', require_auth => 1 },
    advertiserCampaignStatistics            =>  { 'service' => 'AdvertiserXmlRpcService.php', require_auth => 1 },
    advertiserDailyStatistics               =>  { 'service' => 'AdvertiserXmlRpcService.php', require_auth => 1 },
    advertiserListByAgencyID                =>  { 'service' => 'AdvertiserXmlRpcService.php', require_auth => 1 },
    advertiserPublisherStatistics           =>  { 'service' => 'AdvertiserXmlRpcService.php', require_auth => 1 },
    advertiserZoneStatistics                =>  { 'service' => 'AdvertiserXmlRpcService.php', require_auth => 1 },
    modifyAdvertiser                        =>  { 'service' => 'AdvertiserXmlRpcService.php', require_auth => 1 },
    # banner
    addBanner                               =>  { 'service' => 'BannerXmlRpcService.php', require_auth => 1 },
    bannerDailyStatistics                   =>  { 'service' => 'BannerXmlRpcService.php', require_auth => 1 },
    bannerPublisherStatistics               =>  { 'service' => 'BannerXmlRpcService.php', require_auth => 1 },
    bannerZoneStatistics                    =>  { 'service' => 'BannerXmlRpcService.php', require_auth => 1 },
    deleteBanner                            =>  { 'service' => 'BannerXmlRpcService.php', require_auth => 1 },
    getBanner                               =>  { 'service' => 'BannerXmlRpcService.php', require_auth => 1 },
    getBannerListByCampaignId               =>  { 'service' => 'BannerXmlRpcService.php', require_auth => 1 },
    getBannerTargeting                      =>  { 'service' => 'BannerXmlRpcService.php', require_auth => 1 },
    modifyBanner                            =>  { 'service' => 'BannerXmlRpcService.php', require_auth => 1 },
    setBannerTargeting                      =>  { 'service' => 'BannerXmlRpcService.php', require_auth => 1 },
    # campaigns
    addCampaign                             =>  { 'service' => 'CampaignXmlRpcService.php', require_auth => 1 },
    deleteCampaign                          =>  { 'service' => 'CampaignXmlRpcService.php', require_auth => 1 },
    getCampaign                             =>  { 'service' => 'CampaignXmlRpcService.php', require_auth => 1 },
    campaignBannerStatistics                =>  { 'service' => 'CampaignXmlRpcService.php', require_auth => 1 },
    campaignDailyStatistics                 =>  { 'service' => 'CampaignXmlRpcService.php', require_auth => 1 },
    campaignListByAdvertiserId              =>  { 'service' => 'CampaignXmlRpcService.php', require_auth => 1 },
    campaignPublisherStatistics             =>  { 'service' => 'CampaignXmlRpcService.php', require_auth => 1 },
    campaignZoneStatistics                  =>  { 'service' => 'CampaignXmlRpcService.php', require_auth => 1 },
    modifyCampaign                          =>  { 'service' => 'CampaignXmlRpcService.php', require_auth => 1 },
    # channels
    # publisher
    addPublisher                            =>  { 'service' => 'PublisherXmlRpcService.php', require_auth => 1 },
    deletePublisher                         =>  { 'service' => 'PublisherXmlRpcService.php', require_auth => 1 },
    getPublisher                            =>  { 'service' => 'PublisherXmlRpcService.php', require_auth => 1 },
    publisherAdvertiserStatistics           =>  { 'service' => 'PublisherXmlRpcService.php', require_auth => 1 },
    publisherBannerStatistics               =>  { 'service' => 'PublisherXmlRpcService.php', require_auth => 1 },
    publisherCampaignStatistics             =>  { 'service' => 'PublisherXmlRpcService.php', require_auth => 1 },
    publisherDailyStatistics                =>  { 'service' => 'PublisherXmlRpcService.php', require_auth => 1 },
    getPublisherListByAgencyId              =>  { 'service' => 'PublisherXmlRpcService.php', require_auth => 1 },
    publisherZoneStatistics                 =>  { 'service' => 'PublisherXmlRpcService.php', require_auth => 1 },
    # user 
    addUser                                 =>  { 'service' => 'UserXmlRpcService.php', require_auth => 1 },
    deleteUser                              =>  { 'service' => 'UserXmlRpcService.php', require_auth => 1 },
    getUser                                 =>  { 'service' => 'UserXmlRpcService.php', require_auth => 1 },
    getUserListByAccountId                  =>  { 'service' => 'UserXmlRpcService.php', require_auth => 1 },
    modifyUser                              =>  { 'service' => 'UserXmlRpcService.php', require_auth => 1 },
    updateSsoUserId                         =>  { 'service' => 'UserXmlRpcService.php', require_auth => 1 },
    updateUserEmailBySsoId                  =>  { 'service' => 'UserXmlRpcService.php', require_auth => 1 },
    # zone
    addZone                                 =>  { 'service' => 'ZoneXmlRpcService.php', require_auth => 1 },
    deleteZone                              =>  { 'service' => 'ZoneXmlRpcService.php', require_auth => 1 },
    generateTags                            =>  { 'service' => 'ZoneXmlRpcService.php', require_auth => 1 },
    getZone                                 =>  { 'service' => 'ZoneXmlRpcService.php', require_auth => 1 },
    zoneAdvertiserStatistics                =>  { 'service' => 'ZoneXmlRpcService.php', require_auth => 1 },
    zoneBannerStatistics                    =>  { 'service' => 'ZoneXmlRpcService.php', require_auth => 1 },
    zoneCampaignStatistics                  =>  { 'service' => 'ZoneXmlRpcService.php', require_auth => 1 },
    zoneDailyStatistics                     =>  { 'service' => 'ZoneXmlRpcService.php', require_auth => 1 },
    getZoneListByPublisherId                =>  { 'service' => 'ZoneXmlRpcService.php', require_auth => 1 },
    linkBanner                              =>  { 'service' => 'ZoneXmlRpcService.php', require_auth => 1 },
    linkCampaign                            =>  { 'service' => 'ZoneXmlRpcService.php', require_auth => 1 },
    modifyZone                              =>  { 'service' => 'ZoneXmlRpcService.php', require_auth => 1 },
    unlinkBanner                            =>  { 'service' => 'ZoneXmlRpcService.php', require_auth => 1 },
    unlinkCampaign                          =>  { 'service' => 'ZoneXmlRpcService.php', require_auth => 1 },
};

1;
=pod ------------------------------------------------------------------------------------------

=head1 WWW::OpenX::API::Dispatch::Table

Note: this is a kludge of semi-epic proportions. This class contains a single constant hashref
that contains all the methods that can be called in the OpenX API, as well as their service
endpoint and whether or not authentication is required.

=head1 SYNOPSIS
    
    This object is for internal use only

=head1 BUGS

Please report any bugs or feature requests to C<bug-www-openx-api at rt.cpan.org>, or through
the web interface at L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=WWW-OpenX-API>.  I will be notified, and then you'll
automatically be notified of progress on your bug as I make changes.

=head1 SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc WWW::OpenX::API::Dispatch::Table

=head1 SEE ALSO

L<WWW::OpenX::API>, L<WWW::OpenX::API::Dispatch>

=head1 LICENSE AND COPYRIGHT

Copyright 2010 Ben van Staveren.

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 dated June, 1991 or at your option
any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

A copy of the GNU General Public License is available in the source tree;
if not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

=cut ------------------------------------------------------------------------------------------
